Skip to content

Conversation

ianayl
Copy link
Contributor

@ianayl ianayl commented Mar 14, 2025

There has been work in #17229 to unify the UR and SYCL benchmarking CIs. However, given recent priorities on getting the UR's nightly dashboard up for intel/llvm, this PR lands some of the commits in #17229 that are ready to be deployed already:

  • creates an initial (minimally viable) version of a unified benchmark.yml workflow, which triggers UR benchmark scripts and stores the results in https://github.com/intel/llvm-ci-perf-results
    • new components of this workflow are named "benchmark_v2": this will eventually become just a single "benchmark" folder. The same applies to "benchmarking" and "benchmarks" in /devops
  • enables the dashboard in intel.github.io/llvm/benchmarks

ianayl and others added 30 commits February 27, 2025 14:01
This patch improves numerous aspects on how the benchmarking
results are visualized:
 - rewrites the way HTML charts are generated, using a library (Chart.js)
 that's both easier to use and more visually pleasing.
 The new HTML page also now decouples data from the HTML itself,
 leading to faster load times and the ability to fetch data
 from remote sources.
 - The markdown output now contains a failures section that
 lists all benchmarks that failed for a given run. This will be
 a helpful for developers during PR testing.
 - Benchmarks can now have description that's displayed on the page.
 - And many more minor improvements.
On PRs based on main, the scripts location is "old" and not accesible.
Pick location based on the dir existance. Step 'gather info' is in
a 'weird' location, so solve it with 2 tries to execute the script.
Copy link
Contributor

@pbalcer pbalcer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

jobs:
build_sycl:
name: Build SYCL from PR
if: inputs.commit_hash != ''
Copy link
Contributor

@lukaszstolarczuk lukaszstolarczuk Mar 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

techincally passing empty commit_hash is allowed (required == false), so maybe it's not the best way of checking if this is a PR run or nigthly...?

// FYI, trigger type can be used to establish if nightly or not

Copy link
Contributor Author

@ianayl ianayl Mar 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch! think I resolved this via the latest commit: I've set default values on commit_hash to always be a string

// trigger type can be used to determine if a job was scheduled, but I've chosen to use commit_hash here incase the user themselves wants to use the nightly build of sycl manually

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm tbh, I'm not sure if setting default: '' will solve the: != '', buuut If this will be an issue it can be updated later on

jobs:
build_sycl:
name: Build SYCL from PR
if: inputs.commit_hash != ''
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe I'm missing something, but can we easily read the hash commit from PR?

I know we used pr_no and a tricky fetching to get the proper commit from PR (https://github.com/intel/llvm/blob/unify-benchmark-ci/.github/workflows/ur-benchmarks-reusable.yml#L79-L81)

Copy link
Contributor Author

@ianayl ianayl Mar 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The sycl-linux-build.yml job in intel/llvm doesn't support compiling commits from other branches, thus we cannot access commits from PR branches as of now: I have chosen to not stir the nest here, but this will probably be a future change that involes changing sycl-linux-build.yml

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm... so what should I pass here to check my PR? or is it intended as a post-merge check?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Admittedly I dont think that'd be possible right now 😅

We will figure something out though, given that this PR is no longer urgent, I'll make a PR to change sycl-linux-build.yml so that we can actually accomplish this

@ianayl ianayl marked this pull request as ready for review March 14, 2025 17:13
@ianayl ianayl requested a review from a team as a code owner March 14, 2025 17:14
@ianayl ianayl temporarily deployed to WindowsCILock March 14, 2025 17:14 — with GitHub Actions Inactive
@ianayl ianayl requested a review from a team as a code owner March 14, 2025 17:14
@ianayl ianayl temporarily deployed to WindowsCILock March 14, 2025 17:14 — with GitHub Actions Inactive
@ianayl
Copy link
Contributor Author

ianayl commented Mar 14, 2025

Sorry for the commotion everyone: It was decided in a meeting that getting this dashboard up by the end of today is no longer urgent. Thus, I'm closing this PR as it no longer makes sense to push this 2 versions of the benchmarking workflow to intel/llvm. I'll be folding these changes back into #17229.

@ianayl ianayl closed this Mar 14, 2025
@ianayl ianayl temporarily deployed to WindowsCILock March 14, 2025 18:45 — with GitHub Actions Inactive
@bader bader deleted the ianayl/benchmark-dashboard branch March 18, 2025 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants